package com.xuecheng.media.service;


import com.xuecheng.media.model.dto.QueryMediaParamsDto;
import com.xuecheng.media.model.dto.UploadFileParamsDto;
import com.xuecheng.media.model.dto.UploadFileResultDto;
import com.xuecheng.media.model.po.MediaFiles;
import com.xuecheng.model.PageParams;
import com.xuecheng.model.PageResult;

import java.io.File;


/**
 * @description 媒资文件管理业务类
 */
public interface MediaFileService {

 /**
  * @description 媒资文件查询方法
  * @param pageParams 分页参数
  * @param queryMediaParamsDto 查询条件
 */
 public PageResult<MediaFiles> queryMediaFiels(Long companyId, PageParams pageParams, QueryMediaParamsDto queryMediaParamsDto);


 /**
  * 上传文件
  * @param companyId    机构id
  * @param uploadFileParamsDto  上传文件信息
  * @param localFilePath  文件磁盘路径
  * @return
  */
 public UploadFileResultDto uploadFile(Long companyId, UploadFileParamsDto uploadFileParamsDto,String localFilePath);

 /**
  * 将文件信息添加到数据库
  * @param companyId  机构id
  * @param fileMd5   文件md5值
  * @param uploadFileParamsDto   上传文件信息
  * @param bucket_files  桶
  * @param objectName  对象名称
  */
 MediaFiles addMediaFilesToDb(Long companyId, String fileMd5, UploadFileParamsDto uploadFileParamsDto, String bucket_files, String objectName);

 /**
  * 将文件写入minio
  * @param localFilePath   文件地址
  * @param mimeType   媒体类型
  * @param bucketFiles   桶
  * @param objectName  对象名称
  */
  boolean addMediaFilesToMinio(String localFilePath, String mimeType, String bucketFiles, String objectName);

 /**
  * 根据媒资id查询
  * @param mediaId
  * @return
  */
  MediaFiles getFileById(String mediaId);


}
